package com.edais.service;

import net.sf.json.JSONObject;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public interface SMSService {
	
	/**
	 * 发送短信不带参数内容的
	 * 不带【糯糯金融】短信头，或这个配在短信模版中
	 * @param userId ID或者手机号
	 * @param methodName 短信模板名称	 
	 * 
	 */
	public Map<String, Object> getSMSKz(String userId,String methodName)throws Exception;
	

	/**
	 * 发送短信，
	 *　不带【糯糯金融】短信头，或这个配在短信模版中
	 * @param userId ID或者手机号
	 * @param methodName 短信模板名称
	 * @param parm1 参数1
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> getSMSKz(String userId,String methodName,String parm1) throws Exception;
	
	/**
	 * 发送短信，
	 *　不带【糯糯金融】短信头，或这个配在短信模版中
	 * @param userId ID或者手机号
	 * @param methodName 短信模板名称
	 * @param parm1 参数1
	 * @param parm2 参数2
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> getSMSKz(String userId,String methodName,String parm1,String parm2) throws Exception;

	/**
	 * 获取短信
	 * @param je 金额
	 */
	public Map<String, Object> getSMS(String userId,String methodName,String je) throws Exception;

	/**
	 * 获取短信
	 * @param je金额
	 * @param cpType产品类型
	 */
	public Map<String, Object> getSMS( String userId,String methodName,String je,String cpType) throws Exception;

	/**
	 * 获取用户手机号码
	 */
	public String getMobileById(String userId) throws Exception;
	
	/**
	 * 得到加息券利率（system_setting表配置）
	 * @param key
	 * @return
	 * @throws Exception
	 */
	public String getJxCouponRate(String key) throws Exception;

	/**
	 * 获取验证码
	 * @param paramsMap
	 * @return
	 * @throws Exception
	 */
	public String getCaptcha(Map<String, String> paramsMap) throws Exception;


	/**
	 * 手动发送短信内容
	 * @param mobile
	 * @param context
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> setSMS(String mobile, String context)throws Exception;

	/**
	 * 发送短信
	 * @param userId
	 * @param mobile
	 * @param smsNo
	 * @param smsParams
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> sendSMS(String logInfo,String mobile, String smsNo, String ... smsParams) throws Exception;

	/**
	 * 发送个推消息
	 * @param userId
	 * @param smsNo
	 * @param tradeAmount
	 * @param cpType
	 * @throws Exception
	 */

	public JSONObject  sendGetuiMSG(Map<String, Object> map)throws Exception;

	/**
	 * 提现失败给运营发送短信
	 * @param smsNo
	 * @param smsParams 要求字段顺序，数据库短信模板顺序：{0}快速提现出现问题，用户手机号：{1}，提现订单号：{2}错误信息：{3}，时间：{4}
	 * 【糯糯金融】"+productTitle+"快速提现出现问题，用户手机号："+userPhone+"，提现订单号："+orderId+" 错误信息："+errorMessage+"，时间："+sdf.format(new Date())
	 */
	public void sendErrorMessageForSystem(String smsNo, String ... smsParams);
	
	/**
	 * 提现失败给用户发送短信
	 * @param smsNo
	 * @param userPhone
	 * @param bankAccountName
	 */
	public void sendErrorMessageForUser(String smsNo,String userPhone, String bankAccountName);
	/**
	 * 保存短信到DB
	 */
	public void saveSMS(String mobileNum, String message, String flag) throws Exception;

}